﻿using BLevy.Entidad;
using BLevy.Negocio;
using BLevy.UI.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmCuponesGenerar : Form
    {
        //private int totalcupones = 0;
        //private int cuponporpagina = 0;
        //PaperSize paperSize = new PaperSize("A4", 827, 1169);
        Font fuente = new Font("Arial", 8, FontStyle.Regular);
        Font fuente_cdb = new Font("3 of 9 Barcode", 22, FontStyle.Regular);
        Pen lapiz = new Pen(Color.Black);

        private IList<Cupon> cuponesL;

        public frmCuponesGenerar()
        {
            InitializeComponent();
        }

        private void IniciarControles()
        {
            progressbar.Style = ProgressBarStyle.Marquee;
            progressbar.MarqueeAnimationSpeed = 30;
        }

        private void frmCuponesGenerar_Load(object sender, EventArgs e)
        {
            _worker.RunWorkerAsync();
        }


        private void GetCupones()
        {
            //obtener ultimos cupones segun la ultima fecha 
            cuponesL = Cupones.GetAllCuponesAImprimir();
        }

        private int GenerarCupones()
        {        
            int resultado = Cupones.GenerarCupon();
            return resultado;
        }

        private void _worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Thread.Sleep(1000);            
            e.Result = GenerarCupones();
        }

        private void _worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            int resultado = Convert.ToInt32(e.Result);

            if (resultado > 0)
            {
                DialogResult dialog = MessageBox.Show("Cupones generados correctamente. Desea Imprimirlos? ", "Información", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (dialog == System.Windows.Forms.DialogResult.Yes)
                {
                    GetCupones();
                    //imprimo los cupones
                    ImpresionCupones imprimir = new ImpresionCupones(cuponesL);
                    imprimir.Imprimir();

                    this.Close();
                }
                else
                {
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Ocurrio un error al generar los cupones. Intente Nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        



    }
}
